package main

import (
	"encoding/json"
	"fmt"
)

// 结构体与json
// 把go语言中的结构体变量 ---> json格式  （序列化）
// 把json格式--->go语言中能够识别的结构体变量 (反序列化)

type person struct {
	Name string `json:"name"`  //`json:"name"` 意思是当使用json格式解析时，使用小写name来解析
	Age int `json:"age"`
}

func main() {
	p1:=person{
		Name:"wxd",
		Age: 10,
	}
	b,err:=json.Marshal(p1) // marshal 序列化
	if err != nil {
		fmt.Printf("Marshal failed,err:&v",err)
		return
	}
	fmt.Printf("%#v\n",string(b))
	// 反序列化
	str:=`{"name":"test","age":"10"}`
	var p2 person
	json.Unmarshal([]byte(str),&p2)  //传指针是为了能在json.Unmarshal内部修改p2的值
	fmt.Printf("%#v\n", p2) //
}